查看原文
其他

Python字符串之“分分合合”

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:赵一帆,中南财经政法大学金融学院

本文编辑:冀思慧

技术总编:王子一

Stata&Python云端课程来啦!

       为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~爬虫俱乐部推出了Python编程培训课程Stata基础课程Stata进阶课程Stata文本分析正则表达式网络爬虫基本字符串课程。报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。我们在这篇推文的最后提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~

字符串是指一系列字符串或串(String),它是由数字、字母、下划线组成的一串字符。字符串是Python中最常见的数据类型,有时候我们需要对字符串做一下简单的变换,比如拆分、连接与填充等,如果一一操作会很麻烦啦。那么我们有什么方法可以快速实现前述操作呢?今天我们就来给大家介绍使用特定函数快速实现字符串的"分分合合"的小Tips~


01

字符串的拆分

首先,在本文中我们创建两个简单的字符串,源自《肖申克的救赎》里的经典台词。

stra="You know some birds are not meant to be caged,their feathers are just too bright "strb="你知道,好多鸟儿是注定不会被关在牢笼里的,它们的每一片羽毛都闪耀着自由的光辉。"

接下来,我们就开始进行字符串的变身之旅啦~

(一)split( )函数

1.描述:Python中split( )函数是通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串,它的语法如下:
str.split(sep,maxsplit)
  • str:表示要进行分割的字符串;
  • sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
  • maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。

2.案例:   

print(stra.split(' ')) #以空格为分隔符print(strb.split(',')) #以逗号为分隔符,不限制分隔次数print(strb.split(',',2)) #以逗号为分隔符,分隔次数最多为2 
 输出结果如下:

      需要注意的是第二行命令和第三行命令结果的差异就在于是否限制了字符串的分隔次数,在第三行命令中限制了字符串的分隔次数,所以字符串只被分隔成3个部分。

(二)splitlines( )函数

1.描述:splitlines( ) 按照行('\r', '\r\n', '\n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。它的语法如下:

str.splitlines([keepends])
  • keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。

2.案例

举个例子,我们稍微改动一下stra的内容,加入几个换行符号。
str1="你知道,\n好多鸟儿是注定不会被关在牢笼里的,\r它们的每一片羽毛,都闪耀着自由的光辉。"print(str1.splitlines())

我们看到输出结果中我们给出的字符串,已经被给定的行分隔符分成了3个部分。

(三)partition()函数

1.描述:partition() 方法用来根据指定的分隔符从左边到右边将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

partition()方法语法:

str.partition(str)

2.实例

print(strb.partition(',')) #从左到右进行分隔
输出结果如下:

可以看到,这个字符串已经被从左到右以中文的逗号进行了一次分隔,第一个和第三个分别为分隔符左右两边的子字符串,中间的则为我们指定的分隔符。

(四)rpartition() 函数
1.描述:rpartition() 方法类似于方法partition() ,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

rpartition()方法语法:

str.rpartition(str)

2.实例

print(strb.rpartition(',')) #从右到左进行分隔
输出结果如下:

与上个部分的输出结果很类似,最主要的区别在于rpartition( )函数的分隔顺序是从右到左;partition( )函数的分隔顺序是从左到右。

02

字符串的连接

(一)join函数

1.描述

join() 函数用于将序列中的元素以指定的字符连接生成一个新的字符串。语法如下:
str.join(sequence)
  • sequence -- 要连接的元素序列。

2.案例

#使用join函数连接字符串strc = ('Study', 'From', 'life')print('-'.join(strc))#使用join函数连接列表字符串strd = ['Study', 'From', 'Life']print('.'.join(strc))
输出结果如下:

即这些字符串按照指定的连接符号进行了字符串的连接,变成新的字符串。



03

字符串的填充

(一)ljust( )函数

1.描述:Python ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。ljust()方法语法:
str.ljust(width[, fillchar])
  • width -- 指定字符串长度。

  • fillchar -- 填充字符,默认为空格。

它的输出结果会返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
strd="爬虫俱乐部"print(strd.ljust(7,','))print(strd.ljust(7,'A'))

输出结果如下:

我们可以看到字符串后面已经填充了指定的符号,输出7个字符的状态。

(二) rjust() 函数

1.描述:Python rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。rjust()方法语法如下:

str.rjust(width[, fillchar])
  • width -- 指定填充指定字符后中字符串的总长度.

  • fillchar -- 填充的字符,默认为空格。

输出结果会返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

2.实例:

strd="爬虫俱乐部"print(strd.rjust(7,','))print(strd.rjust(7,'A'))
输出结果为:

与上述情况类似,不一样的是填充方式是在前面填充,输出总体是有7个字符。

(三)zfill( )函数

1.描述:zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。zfill()方法语法如下:
str.zfill(width)
  • width -- 指定字符串的长度。原字符串右对齐,前面填充0。

2.案例

strd="Stata"print(strd.zfill(7))

zfill( )函数就是默认在前面填充0,使得字符串右对齐。

以上就是对字符串的拆分、连接与填充等诸多函数的介绍啦,这些可以帮助我们快速实现字符串的“分分合合”,大家快动手试试呀!

END
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。




腾讯课堂课程二维码








            


 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!











往期推文推荐       PDF转docx可批量操作?——wordconvert的小技巧

       考研之后,文科生需以“do”躬“do”!

       手绘五星兴家国——用Stata绘制五星红旗

       Seminar丨董事会的性别多样化和企业创新:来自国际的证据

      Python与数据库交互——窗口函数

       Stata之post命令——数据邮递 

       爬虫俱乐部成员的Stata学习经验分享来啦!

       Seminar丨2002年萨班斯·奥克斯利法案的经济后果

        我几乎画出了“隔壁三哥”家的国旗

        Python基础——三大数字类型,你都了解吗?
        如何用Stata绘制带指向性箭头标注的图像       
        Seminar丨荐仆贷款——19世纪中国的信任辅助贷款【技能篇】多进程队列间通信

Seminar丨公司董事会的人才增长:来自中国的证据

正则表达式--懒惰模式

爬完独立董事的年薪,我的眼镜跌破了!识别旅游“照骗”——看风景名胜是否名副其实主成分分析的Python实现

正则表达式--贪婪模式

Seminar丨谁更重要:高管股权薪酬与财务报告欺诈DOS能量,超乎你想象!

爬虫实战丨走进哈利波特的魔法世界

数据集合并的新路子-frlink命令

Seminar丨附近的公司:利用卫星图像研究本地信息优势

线性同余法生成伪随机数 

[技能篇]多线程爬虫

“好哭”是衡量一部好电影的标准吗?

Stata&Python云端课程来啦!

带你了解Stata中的矩阵

Seminar|总统的朋友:政治关联与企业价值
爬虫实战 | 爬取中国天气网

爬虫实战 | 爬取东方财富网经济数据——以居民消费价格指数(CPI)为例

Seminar|媒体关联董事对融资和外部治理的影响神奇的组内交叉合并 PDF分章节转TXT并实现可视化——以胡景北知青日记1971至1978年为例

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存